#ifndef __COMPOSITE_H__
#define __COMPOSITE_H__

#include "component.h"
#include <vector>

class Composite : public Component
{
public:
    Composite(std::string name) : Component(name) {}
    ~Composite() = default;

    void Add(Component *com);
    void Remove(Component *com);
    Component *Get(int idx);

    void Operation();
private:
    std::vector<Component *> com_list_;
};


#endif

